home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #6 / Amiga Plus CD - 2004 - No. 06.iso / AmigaPlus / Begleitmaterial / 50Tools / Grafik / PerfectPaint / rexx / Anim / Dissolve / Multi_Wave < prev    next >
Text File  |  2001-10-01  |  2KB  |  147 lines

  1. /* Dissolve Multi_Wave
  2. 101
  3. */
  4.  
  5.     call addlib("rexxmathlib.library", 5, -30, 0)
  6.  
  7.     options results
  8.  
  9.     parse ARG Port Opt1 Opt2 Opt3 s0 t0 s1 t1 b
  10.     
  11.     ADDRESS value Port
  12.  
  13.     pp_GetWidth
  14.     w=result
  15.     pp_GetHeight
  16.     h=result
  17.     pp_GetDepth
  18.     D=result
  19.  
  20.     pp_GetCurrentBuffer
  21.     CBf=result
  22.     pp_GetCurrentBrush
  23.     CB=result
  24.  
  25.     pp_FindEmptyBrush
  26.     Brush=result
  27.     if Brush=-1 then DO
  28.         pp_Warn "can't*find*empty|Brush."
  29.         EXIT        
  30.     END
  31.     pp_SetBrush Brush        
  32.  
  33.     pp_FindEmptyBuffer
  34.     Bf=result
  35.     if Bf=-1 then DO
  36.         pp_Warn "can't*find*empty|Buffer."
  37.         EXIT        
  38.     END
  39.     pp_SetBuffer Bf
  40.  
  41.     pp_New w+100 h+100 24
  42.     pp_SpareOnOff
  43.  
  44.     /* Draw your Mask */
  45.         pp_ClearRange 0
  46.         IF Opt3=3 then DO
  47.             pp_setRange 0 0 0 0 0
  48.             pp_setRange 0 4 255 255 255
  49.             pp_setRange 0 8 0 0 0
  50.             pp_setRange 0 12 255 255 255
  51.             pp_setRange 0 16 0 0 0
  52.             pp_setRange 0 19 255 255 255
  53.             pp_Gradient 0 0 0 0
  54.         END
  55.         IF Opt3=2 then DO
  56.             pp_setRange 0 4 0 0 0
  57.             pp_setRange 0 0 255 255 255
  58.             pp_setRange 0 12 0 0 0
  59.             pp_setRange 0 8 255 255 255
  60.             pp_setRange 0 19 0 0 0
  61.             pp_setRange 0 16 255 255 255
  62.             pp_Gradient 0 0 0 0
  63.         END
  64.         IF Opt3=0 then DO
  65.             pp_setRange 0 0 0 0 0
  66.             pp_setRange 0 4 255 255 255
  67.             pp_setRange 0 8 0 0 0
  68.             pp_setRange 0 12 255 255 255
  69.             pp_setRange 0 16 0 0 0
  70.             pp_setRange 0 19 255 255 255
  71.             pp_Gradient 0 1 0 0
  72.         END
  73.         IF Opt3=1 then DO
  74.             pp_setRange 0 4 0 0 0
  75.             pp_setRange 0 0 255 255 255
  76.             pp_setRange 0 12 0 0 0
  77.             pp_setRange 0 8 255 255 255
  78.             pp_setRange 0 19 0 0 0
  79.             pp_setRange 0 16 255 255 255
  80.             pp_Gradient 0 1 0 0
  81.         END
  82.  
  83.         pp_EffectOn
  84.         pp_ComposeReqOff
  85.         pp_BoxF 0 0 w+99 h+99
  86.         pp_Wave 60 30
  87.         pp_Boxf 50 50 w+50 h+50
  88.         pp_pickBrush 50 50 w h 1
  89.         pp_new w h 24
  90.         pp_SpareOnOff
  91.         pp_pent 6
  92.         pp_Plot w/2 h/2
  93.         pp_FreeBrush
  94.         pp_ComposeReqOn
  95.         pp_EffectOff
  96.  
  97.     /*    End    */
  98.     
  99.     pp_SparetoStencil
  100.     pp_SSave "ram:DisSten"
  101.     pp_ClearCurrentBuffer
  102.     pp_SetBuffer CBf
  103.  
  104.     pp_SLoad "ram:DisSten"
  105.     ADDRESS COMMAND
  106.     'delete >nil: ram:DisSten'
  107.     ADDRESS value Port
  108.  
  109.     pp_GotoFrame s1
  110.     pp_PicttoSpare
  111.     pp_GotoFrame s0            
  112.     pp_Pickbrush 0 0 W H 1
  113.     
  114.     step=(s1-s0)
  115.     Step_f=255/Step
  116.  
  117.  
  118.     DO i=s0 to s1
  119.  
  120.         IF t1=1 then DO
  121.             pp_GotoFrame (s1+i-s0)
  122.             pp_PicttoSpare
  123.         END
  124.  
  125.         pp_GotoFrame i
  126.  
  127.         IF t0=0 then DO
  128.             pp_plot W/2 H/2
  129.         END
  130.  
  131.         f=Step_f*(i-s0)
  132.         IF Opt1=0 then DO
  133.             pp_Dissolve f 255            
  134.         END
  135.         ELSE DO
  136.             pp_Dissolve f f
  137.         END
  138.         pp_Refresh
  139.     END
  140.  
  141.         pp_Gotoframe s0
  142.         pp_FreeBrush
  143.         pp_SetBrush CB
  144.  
  145.  
  146.     EXIT
  147.